
        <html>
			<head>
			     <title>DUQ U2.0 技术分析 - virustracker</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/6599">http://drops.wooyun.org/tips/6599</a></h1>
				
      <p>
        <p>from:https://securelist.com/files/2015/06/The&#95;Mystery&#95;of&#95;Duqu&#95;2&#95;0&#95;a&#95;sophisticated&#95;cyberespionage&#95;actor&#95;returns.pdf</p>

<h1>0x00 前言</h1>

<hr />

<p>今年年初，卡巴斯基实验室在安全扫描过程中，检测到了几个影响了自家内部系统的网络入侵行为。</p>

<p>接着我们大范围调查了这些入侵事件。我们分析发现了一个全新的木马平台，这个平台出自Duqu APT小组之手。Duqu APT小组是世界上最神秘，水平最高的APT小组。这个小组从2012年开始销声匿迹，直到今天又卷土重来。我们分析了这新一轮攻击，结果表明这是2011年Duqu木马的升级版，怀疑与Stuxnet木马有关。我们把这个新木马和相关的平台命名为"Duqu 2.0"。</p>

<p>Duqu利用了0-day漏洞CVE-2015-2360（WindowsKernel中的漏洞）和另外两个0-day漏洞，攻击了卡巴斯基实验室。微软在2015年6月9日修复了第一个漏洞，另两个漏洞在近期也得到了修复。</p>

<!--more-->

<h1>0x01 木马剖析</h1>

<hr />

<pre><code>Filename:随机 / 根据具体样本而定
MD5 (根据具体样本而定): 14712103ddf9f6e77fa5c9a3288bd5ee
Size: 503,296 bytes
</code></pre>

<h2>文件属性</h2>

<p>MSI文件具有一下属性</p>

<ul>
<li>Composite Document File V2 Document</li>
<li>Little Endian</li>
<li>OS: Windows, Version 6.1</li>
<li>Code page: 1252</li>
<li>Title: {7080A304-67F9-4363-BBEB-4CD7DB43E19D} (randomly generated GUIDs)</li>
<li>Subject: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}</li>
<li>Author: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}</li>
<li>Keywords: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}</li>
<li>Comments: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}</li>
<li>Template: Intel;1033</li>
<li>Last Saved By: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}</li>
<li>Revision Number: {4ADA4205-2E5B-45B8-AAC2-D11CFD1B7266}</li>
<li>Number of Pages: 100</li>
<li>Number of Words: 8</li>
<li>Name of Creating Application: Windows Installer XML (3.0.5419.0)</li>
<li>Security: 4</li>
</ul>

<p>其他攻击中使用的MSI文件可能具有另外一些属性。例如，我们还发现了另外几个字段：</p>

<ul>
<li>Vendor: Microsoft or InstallShield</li>
<li>Version: 1.0.0.0 or 1.1.2.0 or 2.0.0.0</li>
</ul>

<p>在Windows资源管理器的文件属性对话框中，可以查看某些字段。</p>

<p><img src="http://static.wooyun.org//drops/20150714/20150714052538874258c1537dce56e0982a1400867677f32c3" alt="enter image description here" /></p>

<p>这个MSI数据包中有两个二进制文件：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405444015723493d5ea9ed305f998772422e6836697c" alt="enter image description here" /></p>

<p>ActionDll是一个dll文件，ActionData0是一个经过Camellia加密，LZJB压缩的数据payload（不同情况下的加密算法和压缩算法也不同）。实际上，经过加密或压缩的二进制数据块中，会有好几层可执行代码。</p>

<p><img src="http://static.wooyun.org//drops/20150726/2015072623002487653.com/blob/tdyaaada8nk/opmw_xi87y0cts9q7o4phw?s=uvzhap5mzrbr" alt="enter image description here" /></p>

<p>在后面的文章中，我们详细地说明了这些组件。</p>

<h2>第一层：ActionDLL（msi.dll）</h2>

<hr />

<pre><code>原文件名: msi.dll
MD5: e8eaec1f021a564b82b824af1dbe6c4d
Size: 17’920 bytes
Link时间: 2004.02.12 02:04:50 (GMT)
类型: 64-bit PE32+ executable DLL for MS Windows
</code></pre>

<p>这个DLL只有一个StartAction导出函数，msiexec.exe进程的上下文会调用这个函数。当这个函数被调用时，这个函数就会获取一个MSI属性-PROP，并用这个值来解密actionData0包。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405444416734454a0222cba184058486e6d5b375b309" alt="enter image description here" /></p>

<p>接下来，这段代码会遍历12个需要解密并启动的payload。这些payload是MSI的一部分，可能会包含以下名称：ActionData0, ActionData1, ActionData2。</p>

<p>我们的这个数据包中只包含一个paylioad-“ActionData0”。</p>

<h2>第二层：ActionData0</h2>

<hr />

<p>主代码会被压缩和加密到这个二进制数据包中。这个二进制的组成包括可执行程序，位置无关代码块，和内嵌的数据对象。这些代码似乎遵循着某种框架，使用了很多辅助结构。辅助结构中包含了一些系统API的指针和内部数据块的偏移量。这些结构能反映出开发者的风格。当代码初始化时，一个字段（一般是前四个字节）中的magic值就会识别结构的状态和类型。</p>

<p>这名编码员还喜欢根据模块和输出名称的哈希来导入系统API。在可执行代码的很多层上都使用了这个哈希算法。通过两个DWORD常量就能识别：0x8A20C27和0x67F84FC6。</p>

<p>一般情况下，ActionData0中的代码会在一个内嵌的可执行程序-“klif.dll”上运行，由这个DLL文件的导出函数表上的第二个函数执行。也就是说，函数名称无所谓，就是要按照函数表上的顺序。当调用这个导出函数时，下一阶段的辅助结构指针就会传递到这个函数上，这样指针就能使用上一层中设置的一些值。</p>

<p><img src="http://static.wooyun.org//drops/20150714/201507140544452972130ff8528b1871b8e9f3cfc303cd43558" alt="enter image description here" /></p>

<p>但是，在klif.dll执行之前，代码会尝试另一条路径。首先，代码会查找“api-ms-win-shell-XXXX.dll”，其中X可以是任意的十进制数。如果当前进程中没有这种名称形式的模块，名称就是无效的。这样的话，代码就会遍历查找任何符合名称形式的模块，首先从api-ms-win-shell-0000.dll, api-ms-win-shell-0001.dll, api-ms-winshell-0002.dll开始。这应该是Duqu平台组件的一个依赖选项。</p>

<p>在找到名称后，代码会尝试按照名称来映射内核(section kernel object)对象，这些名称是使用PRNG算法生成的。节名称的格式“\BaseNamedObjects{XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX}”，其中X是根据当前系统的启动时间生成的十六进制数字。到目前为止，节名称都是根据“machine/boot time” 来确定的，这样每个节名称都不一样，但是如果有其他模块的进程也使用了相同的名称生成算法，进程就能定位这样的节。以OSBoot节为例，一旦生成了节名称，代码就会打开节，如果能找到节，代码就会从节中选取几个值，然后尝试打开特定的设备，并把ICTL代码发送到驱动上。驱动设备的名称和IOC代码都在KMART.dll 内的一个节中。</p>

<p>这名编码员非常喜欢用节来访问数据。在映射klif.dll的代码/数据时，还是要用节。另外也可以通过硬编码magic QWORD数: 0xA1B5F8FC0C2E1064来找到这个节。一旦在当前进程的地址空间中找到了节，就由这个节来运行代码。当前的MSI文件数据包并不能应用这种执行路径，但是这种执行路径出现在了代码中，我们猜测这可能是为了使用通用代码模版来创建当前的MSI数据包。当然，这也说明，其他的Duqu平台组件还具有另外的特征。</p>

<h2>第三层：klif.dll</h2>

<hr />

<pre><code>Original filename: klif.dll
MD5: 3fde1bbf3330e0bd0952077a390cef72
Size: 196’096 bytes
Link time: 2014.07.06 08:36:50 (GMT)
Type: 64-bit PE32+ executable DLL for MS Windows
</code></pre>

<p>很显然，这个文件伪装成了卡巴斯基产品的名称-“klif.sys”。虽然代码和文件信息与卡巴斯基产品完全不同，但是，这个模块的导出函数名称使用了卡巴斯基实验室的缩写：KLInit 和KLDone。</p>

<p>当这个DLL加载到一个新进程中时，DLL的内部结构就会初始化，比如给系统API提供指针的结构。</p>

<p>这个模块的payload位于KLDone导出函数上，是导出函数列表上的第二个函数。这个导出函数是从上一层代码中调用的。 首先，模块会确保全局应用结构和关键函数ntdll.dll, kernel32.dll and user32.dll，已经初始化。在调用系统API函数时，需要使用导出函数名称的哈希。哈希算法与前文提到的算法相同，并且也使用了相同的magic常量：0x8A20C27 和0x67F84FC6。</p>

<p>接下来，代码会遍历正在运行的进程列表，并且获取每个进程的小写名称哈希。这个哈希可以是0x3E3021CB 的硬编码值，也就是“avp.exe”字符串的哈希。</p>

<h2>攻击 AVP.EXE</h2>

<hr />

<p>如果“avp.exe”进程正在运行，模块就会尝试打开OSBoot-section，并且尝试攻击avp.exe进程。攻击开始时，首先遍历下列产品的硬编码注册表项和注册表值，来识别卡巴斯基产品的安装路径：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405444747711f673ba54c4df3014fac6681b836a6b36" alt="enter image description here" /></p>

<p>在模块所查询的注册表值中包含了卡巴斯基产品的根目录路径，如“C:\Program Files\KasperskyLab\Kaspersky Internet Security 15.0.0\”</p>

<p>一旦找到了注册表项和注册值，模块就会确认avp.exe是不是在那个路径下面。另外它还会对文件执行一些额外的检查:环境变量的检查,文件能否被读取的检查,是否是一个PE文件的检查.</p>

<p>之后这个模块执行如下动作:1.把avp.exe映射到它内部2.改变内存区域的属性让代码执行3.改变avp.exe内的字符4.使用SSE2 CPU扩展对avp.exe打补丁.</p>

<p>接着，模块会尝试启动一个新的线程，线程的开始位置就是其中一个补丁的位置。到目前为止，新的线程会首先调用avp.exe模块，这个模块会执行其他的一些调用，比如，跳回到klif.dll。很显然，这次攻击是为了让avp.exe相信后续的调用是安全的，相信调用堆栈是来自一个合法的avp.exe模块。继续研究代码，发现：新线程会立刻从avp.exe跳转会klif.dll，并且会尝试与卡巴斯基产品的微过滤器，也就是klif.sys通信。</p>

<p>事实上，在与klif.sys通信之前，新线程会打开OSBoot-section，并获取一个IOCTL代码和驱动设备的名称，然后把这个IOCTL代码发送给设备。这个节和相应的驱动（KMART.dll）会给当前模块提供一定的支持。代码会获取当前进程名称的哈希，并且验证哈希是不是下列三个哈希之一：0x3E3021CB (avp.exe), 0xDE6D4DA0 (msiexec.exe), 0xB915B2D8 (rundll32.exe)。</p>

<p>如果能识别当前进程名称的哈希，模块就会打开\KlifComm微过滤器的通信端口，并且发送一些驱动通信信息，来和klif.sys通信。通过分析这些信息，我们发现这项技术能让klif发现不了进程或线程操作。所有的杀毒产品都会认为这个注册过的项目是受信任的，所以不会扫描其活动，也不会检测或拦截其进程。另外，这个模块会要求卡巴斯基产品的自我防御支持，这个功能是防止木马利用系统技术来杀掉安全产品的进程。这样的话，即使是管理员用户也无法终止模块的进程。</p>

<p>我们测试了卡巴斯基的其他一些产品，结果发现，这些产品都会检查进程的自定义数字签名来验证caller进程。截至目前，如果没有额外的驱动支持，这项技术不会成功。从2010年开始，如果有进程尝试打开\KlifComm微过滤器的通信端口，卡巴斯基的产品就会验证这些进程的数字签名。这种攻击只能影响旧版的卡巴斯基产品，比如在2009年发布的KIS2010。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405444875712dccbe28430d08bfb8f2570830c1d92c1" alt="ima" /></p>

<p>一般来说，攻击者现在不会攻击卡巴斯基在2009年之前发布的产品。所以，我们有分析了另一种比较合理的解释。</p>

<p>通常来说，这类攻击不会攻击我们的产品，因为我们的产品会检查进程的自定义数字签名，来验证进程的合法性。为了绕过这种检测，Duqu 2.0的一个“KMART.dll”模块给内存中的“klif.sys”打了补丁。因为 “KMART.dll”已经利用Windows内核漏洞在内核模式下运行了，所以这种攻击才能发挥作用。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405444875712dccbe28430d08bfb8f2570830c1d92c1" alt="enter image description here" /></p>

<p>在发送完代码后，模块会继续下一阶段，也就是进程迁移。</p>

<h2>CTwoPENC.dll zero-day and KMART.dll</h2>

<hr />

<p>第三层-klif.dll会执行多个函数，来保证木马能驻进内存，并且绕过杀毒检测。</p>

<p>很重要的一点就是获取内核权限。在64位系统上，如果驱动没有签名，用户就不能加载和运行它。虽然其他攻击者，例如Equation 或 Turla，他们会选择利用第三方签名的驱动，但是Duqu 2.0平台使用的手段要高明很多。</p>

<p>其中一个payload-“CTwoPENC.dll”捆绑了“klif.dll”。这是一个Windows内核漏洞(CVE-2015-2360)。利用这个漏洞，payload就能使用最高权限来运行代码。我们恢复了几个版本的“CTwoPENC.dll”，存在32位和64位版本，编译时间戳如下：</p>

<ul>
<li>2014.08.25 01:20:04 (GMT) </li>
<li>2014.08.25 01:19:03 (GMT) </li>
<li>2014.07.06 09:17:03 (GMT)</li>
</ul>

<p>不同于Duqu 2.0的其他模块，这些时间戳看起来都是合法的。至于为什么会这样，我们还不清楚-可能Duqu平台的开发者使用的是其他人编写的模块，而开发者忘了修改编译时间戳。</p>

<p>“CTwoPENC.DLL”是 “win32k.sys” 中存在的一个0-day漏洞，利用这个漏洞，非权限用户也能获取到内核权限。这个模块会利用漏洞来创建窗口，线程的类别名称分别是“CPer”, “Zero”, “CTwo”, “Vero” ，并且模块还能操控回调指针。</p>

<p><img src="http://static.wooyun.org//drops/20150714/201507140645287535791dd5011eb2db0d6377ff4c0166929af" alt="enter image description here" /></p>

<p>部分漏洞代码会注册窗口类并创建新的窗口</p>

<p>这个漏洞的目的是加载一个“KMART.dll”驱动。如果漏洞攻击成功，“KMART.dll”就会从模块中解压缩，然后在内核模式下发动攻击。“KMART.dll”既有32位也有64位版本。然后，这个驱动会执行一个内核模式攻击，攻击目标就是卡巴斯基产品的过滤器“klif.sys”。“KMART.dll”会给系统API函数-PsGetCurrentProcessId, PsLookupProcessByProcessId的导入表地址打补丁，也会给杀毒驱动-klflt.sys的输出函数KlGetStringRef 打补丁。在函数被拦截之前，恶意代码已经把恶意模块伪装成来自进程/文件“avp.exe”（使用杀毒组件的真实位置），这样就能绕过杀毒软件的监视。</p>

<p>在测试期间，所有的Windows版本(32位和64位的XP, Vista, 7, 8, 8.1)上都受这个漏洞的影响。微软于2015年6月9日修复了这个漏洞。</p>

<h1>0x02 PAYLOAD容器和迁移</h1>

<hr />

<p>payload容器中包含一个短代码节，用于描述目标CPU的架构，payload类型和目标进程的名称或哈希。当模块使用某些内嵌代码或文件时，代码中一般会有两个代码变量：32位和64位。每个payload的运行类型都是根据单一字符来识别。当前模块支持这5种payload 运行类型：g,i,k,l,q。开发者使用的字符按照字母表顺序排列，也就是说，代码中原来可能还有其他的payload类型，只不过被移除了。</p>

<p><strong>运行类型为“L”的payload</strong></p>

<p>首先，代码会在其他进程中查找权限。进程句柄是硬编码的，或者是通过查找当前运行进程，获取进程的名称，然后对比已知哈希来获得的。模块中包括下列硬编码进程的哈希： 0x31283314 (services.exe), 0x1026D1BA (lsass.exe), 0x3BD2498C (svchost.exe)。</p>

<p>如果发现了任何识别出的进程，模块就会打开进程标记，并验证下列的权限是否可用：</p>

<ul>
<li>SeDebugPrivilege </li>
<li>SeTcbPrivilege </li>
<li>SeAssignPrimaryTokenPrivilege </li>
<li>SeIncreaseQuotaPrivilege </li>
<li>SeImpersonatePrivilege </li>
<li>SeRestorePrivilege</li>
</ul>

<p>如果这些权限可用，模块就会复制进程标记并保存到内部结构中，以便日后使用。</p>

<p>模块在当前系统中，查找一个可用的杀毒软件和一些通用进程。如果什么都没有发现，模块就会尝试查找下列软件的可执行文件：</p>

<ul>
<li>20多个卡巴斯基的产品</li>
<li>McAfee VSCore, SystemCore, HIP</li>
<li>Symantec Internet Security • </li>
<li>Bitdefender </li>
<li>ESET •</li>
<li>H+BEDV • </li>
<li>TrendMicro Network Security Component •</li>
<li>Rising AV • </li>
<li>Avast • </li>
<li>AVG 2012/2013/2014/2015 • </li>
<li>F-Secure • </li>
<li>Qihoo 360 Security • </li>
<li>通用Windows 进程：</li>
<li>o %programfiles(x86)%\windows Defender\msmpEng.exe</li>
<li>o %systemroot%\syswow64\svchost.exe</li>
<li>o %systemroot%\system32\lsass.exe</li>
<li>o %systemroot%\system32\svchost.exe</li>
</ul>

<p>当模块发现了一个这样的可执行程序后，模块会从发现的位置上运行一个新的进程，并使用自己的代码替换当前可执行文件中的可执行代码，代码会经过加密和压缩。</p>

<p>如果代码能从具有安全权限的进程中，找到一个安全标记，代码就会使用CreateProcessAsUser API来创建一个新的进程，在这时，代码就会使用得到的安全标记。否则，代码只会简单地生成一个新的进程。</p>

<p>这个新进程在启动时，处于挂起和调试状态。在新进程启动前，为了简化代码注入和数据操控，子进程的DEP是禁用的。这样，从外表上看，这个进程就像是一个杀毒程序的进程，但是它的内部代码可完全不是合法的模块。</p>

<p><strong>运行模式为“G”的payload</strong></p>

<p>这种payload与上面的payload几乎一样，但是这个payload的载入程序更简单-这个Loader不进行hijack和提权步骤。注入进程的选择是自动的，只要是可用进程就可以。</p>

<p><strong>运行模式为“I”的payload</strong></p>

<p>这种payload类似于G类 payload，但是它的载入程序在解析payload的标头时有区别：这个载入程序只会选取4个字节来作为进程的哈希，而是不是进程名称字符串。这种方法可能是为了隐藏目标进程的名称，但是，并不是整个模块都应用了这种方法。</p>

<p><strong>运行模式为“K”的payload</strong></p>

<p>这种payload会在当前进程的上下文中运行。代码仅仅会复制需要在独立内存中执行的代码，然后在单独的线程中运行这些代码。在线程完成执行后，执行就会被拦截。</p>

<p><strong>运行模式为“Q”的payload</strong></p>

<p>这种payload与 Q类 payload一样，但是这种payload不会拦截新线程的执行。目前来看，新代码是异步运行的。</p>

<p>在payload容器打开后，代码就会迁移到另一个进程，安全软件会保护这个进程，这样真正的恶意代码就启动了。在多数情况下，我们称其为后门通道，能监听协调器的通信。在很少的情况下，某些设备上的协调器模块才能与C2通信，这是才可以作为一个双向代理，来提供大量的二级插件。</p>

<p><strong>插件化模块平台</strong></p>

<p>除了基本的远程后门，攻击者还在域控制器上和受害者的设备上，部署了更复杂的数据包。这些MSI软件包包括很多模块，各自的作用也不同。</p>

<p>具备完整功能的软件包很大-18MB，基本的远程后门只有500KB。这两者的结构相同，都有ActionDll和加载程序，但是软件还有用于载入和运行的插件。</p>

<p>分析中，我们识别了100多种插件的变种。关于插件的描述如下。我们使用MD5的前两个字节创建了虚拟标识符，来区分插件。</p>

<p><strong>03B7-Duqu2.0的主要模块，大师手笔</strong></p>

<ol>
<li>与cc的通信可以以多种协议进行</li>
<li>可以创建一个自签名证书的中间cc代理程序</li>
<li>可以启动插件框架,加载管理所有的附加插件</li>
</ol>

<p>可以使用HTTP HTTPS SMB网络管道 或者加密的TCP直连的方式通信.跟2011duqu一样它可以把交互隐藏在Jpeg或者gif图片中通过http的方式来进行.请求名字,url,和user-agent在不同的攻击中可能是不同的.</p>

<p>已知其他变种：3026, 4F11。</p>

<p><strong>0682 –收集基本系统信息：</strong></p>

<ul>
<li>当前运行进程的列表</li>
<li>活动桌面和终端会话</li>
</ul>

<p>收集到的信息会通过caller提供的命名管道来传输。</p>

<p>已知其他变种：C0B7</p>

<p><strong>073C **–在客户端和服务器上应用</strong>完整的Windows Socket传输**。提供工厂类来封装网络函数。</p>

<p><strong>0872</strong>-当Windows安装程序启动了恶意软件安装包时，<strong>MSI CustomAction library就</strong>会被激活。然后，加载包含payload的加密二进制，接着解密，并在内存中执行。</p>

<p>版本信息中的名称有好几个：<strong>svcmsi&#95;32.dll, msi3&#95;32.dll, MSI.dll, msi4_32.dll。</strong></p>

<p>加密算法也不同：<strong>Camellia 256, AES, XXTEA。</strong></p>

<p>从MSI参数中提取出的解密密钥可能是：<strong>PROP,HASHVA, CKEY。</strong></p>

<p>通过前缀（根据具体情况）来搜索加密的二进制对象：ActionData, CryptHashs, CAData。</p>

<p>已知存在32位和64位版本。其他已知变体：8D7C, 16EF, E6E5,434C, 44BD, F708。</p>

<p>09A0-64位变体，能窃取文件内容。搜索符合下列规则的文件：</p>

<ul>
<li>*.inuse, *.hml</li>
<li>包括“data.hmi” 或 “val.dat”的文件名</li>
<li>/Int/HMI/ 或/LG/HM/文件夹的文件</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/201507140544552518720360c1054e0a1658d9586464910215f" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150714/201507140544552518720360c1054e0a1658d9586464910215f" alt="enter image description here" /></p>

<pre><code>09A0 插件感兴趣的文件名称和目录名称
</code></pre>

<p>已知其他变体：8858</p>

<p>0AB8 –提供25个函数，这些函数能操控文件和目录：</p>

<ul>
<li>列出目录下的文件</li>
<li>上传或下载任意文件</li>
<li>读/写文件内容</li>
</ul>

<p>在某些情况中，模块会搜索目录-“\int”, “\lg”, “\of\md”, “\tl”, “\ak”，以及扩展名-“.part”, “.manual”, “.inuse”。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405450182715c99b94348a21badccbec290b959c7875" alt="enter image description here" /></p>

<p>0AB8 插件感兴趣的文件目录名称</p>

<p>其他已知变体：A69E</p>

<p>0B97-网络传输。利用API来连接socket和caller提供的管道。其他变体：56A2。</p>

<p>152B-网络和域发现。</p>

<ul>
<li>枚举域中所有的服务器</li>
<li>尝试链接远程注册表并枚举“HKEY_USERS”中所有的用户。然后把用户名转换成SID。</li>
<li>枚举所有可见的网络共享</li>
</ul>

<p>其他已知样本：A987</p>

<p>1C71-把文件数据放到内存中。</p>

<p>2125-网络感染模块。尝试从正在运行的进程中，获取管理凭证。然后使用Windows共享来连接到一个目标设备。接着，恶意DLL后门成功感染设备；目标目录是变化的，可能在UPDROOT$, ADMIN$ 或 C$。使用自定义SMB数据包来识别目标OS的版本。然后使用新创建的服务“svcmsi&#95;<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="fbc8c9bb197b66">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>，<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="4fa9d2eaaadfe0aac5e7a8d4e1a9efc8a9cef9a9cbc00b0303accfcda7f0d6abf7e5a9e7eeaad2d8a6cfd5a7f0c81826212b20383ca8e1eea6cedcabf7c1a8d4e1a9">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>��后门通信。其他变体：DB65。除了恶意DLL，模块还会上传一个新的MSI数据包，并且依赖MSIEXEC.EXE 通过新创建的服务“msisvc&#95;<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="ab9899eb492b364d360e4e3b044e2103e6f8e2">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>，目标MSI的名称是随机生成的，名称模版是“tmp%x.tmp”。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405450354131e58bb844773871923fda1f195682af4f" alt="enter image description here" /></p>

<p>在被感染时，Windows创建的事件日志（系统）项目</p>

<p>模块通过窃取当前运行进程的token来获取管理凭证。这些进程需要是管理员权限用户启动的。所以，模块首先会直接在域控制器中，查询当前域中的100个管理员用户名。</p>

<p><img src="http://static.wooyun.org//drops/20150714/201507140556515322691366ae529692fc090a4444c5aa7ef7d" alt="enter image description here" /></p>

<p>网络感染模块使用的远程位置</p>

<p>24B7-远程桌面管理。获取屏幕截图，同时可以发送输入到桌面，移动鼠标光标。存在32位和64位版本的变体。其他的已知变体：65BE, 7795, BDC8, DEE2</p>

<p>26D6-检测正在运行的网络嗅探器（wireshark, tcpview, netstat, dumpcap, perfmon)，设置一个TCP服务器，并通过网络管道通信。内部名称：“P.dll。</p>

<p>2829-收集系统信息</p>

<ul>
<li>监控USB设备连接</li>
<li>收集USB驱动器的历史记录</li>
<li>枚举网络共享，窗口标题，系统路由表</li>
<li>读写加密文件</li>
</ul>

<p>2913-WMI数据收集</p>

<ul>
<li>枚举具有SID的配置文件</li>
<li>提取每个配置文件目录下lnk文件的信息</li>
<li>通过WMI（CIMV2）来枚举进程，包括已结束进程</li>
<li>从可用的远程注册表中提取用户信息</li>
</ul>

<p>其他已知变体：C776</p>

<p>29D4-模块2125利用服务msisvc_32@; DLL backdoor来感染网络，通过管道“Global{B54E3268-DE1E-4c1e-A667- 2596751403AD}”来接收命令。存在32位和64位变体。</p>

<p>其他已知变体：6F92, A505, D242</p>

<p>2B46-收集系统和用户信息</p>

<ul>
<li>域控制器名称</li>
<li>域中的用户列表</li>
<li>管理员的域名</li>
<li>枚举域信任</li>
<li>TCP表</li>
<li>UDP表</li>
<li>SNMP发现（OS，解析所有的回复）</li>
<li>USB驱动器的历史记录，已挂载设备</li>
<li>安装的程序</li>
<li>时区</li>
<li>OS安装日期</li>
<li>ODBC.ini,SQL服务器的S instance info,Oracle ALL_HOMES, SyBase, DB2, MS SQL,MySQL 的最后连接</li>
<li>DHCP/routing</li>
<li>网络配置</li>
<li>零配置参数</li>
<li>已连接的打印机</li>
<li>WinRAR, WinZip, Office使用的MRU列表，IE类URL，已映射的网络设备，Visual Studio MRU</li>
<li>终端服务客户端的默认用户名提示</li>
<li>用户协助历史记录</li>
<li>PuTTY主机密钥和会话</li>
<li>已登录用户</li>
<li>网络适配器配置</li>
<li>VNC客户端密码</li>
<li>使用SMB数据包来扫描网络并识别OS</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405565441138f99f31edb96a77245195b7e2725fd54f" alt="enter image description here" /></p>

<p>模块收集到的一些注册位置</p>

<p>已知变体：A7F8</p>

<p>2BF7-实用工具DLL。提供基本的API来创建新的MSI数据包，加载并注入任意PE模块。同时负责加载恶意MSI文件中，VFS的第一层。存在32位和64位变体。</p>

<p>已知名称：“ntdll.dll”, “klif.dll”, “apiset.dll”.</p>

<p>其他已知变体：6DA1, 32DB, 8304, 9931, 9E60, A2D4, ABA9, B3BB, DC5F, DD32, F7BB</p>

<p>3395-MS SQL发现模块。这个模块能向网络发送ARP数据包，同时发现MS SQL Server端口。其他函数负责连接额读取远程注册表内容。</p>

<p>35E9-文件系统发现。</p>

<ul>
<li>枚举网络共享</li>
<li>枚举本地驱动器</li>
<li>遍历文件系统的层级结构并枚举文件；识别重分析点</li>
</ul>

<p>3F45-管道后门。打开一个新的全局可见的Windows管道，接收并执行加密的命令。“magic”字符串说明加密的协议是“tttttttt”。</p>

<ul>
<li>枚举正在运行的进程</li>
<li>加载并执行任意PE文件</li>
</ul>

<p>存在32位和64位版本。</p>

<p>已知的管道名称：</p>

<ul>
<li>.\pipe{AAFFC4F0-E04B-4C7C-B40A-B45DE971E81E} .\pipe{AB6172ED-8105- 4996-9D2A-597B5F827501} </li>
<li>.\pipe{0710880F-3A55-4A2D-AA67-1123384FD859} .\pipe{6C51A4DB-E3DE- 4FEB-86A4-32F7F8E73B99} </li>
<li>.\pipe{7F9BCFC0-B36B-45EC-B377-D88597BE5D78}, .\pipe{57D2DE92-CE17- 4A57-BFD7-CD3C6E965C6A}</li>
</ul>

<p>其他已知变体：6364, 3F8B, 5926, A90A, DDF0, A717, A36F, 8816, E85E, E927</p>

<h2>4160-密码窃取程序</h2>

<ul>
<li>提取Google Chrome 和 Firefox的登录数据</li>
<li>LSA证书</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/201507140556576698632f4f2665fb3c29e244b36f12f3dfaf2" alt="enter image description here" /></p>

<p>使用这些数据来定位Chrome保存的登录信息</p>

<p>其他已知 变体：B656</p>

<h2>41E2-密码窃取程序。64位模块。提取：</h2>

<ul>
<li>IE IntelliForms 历史</li>
<li>POP3/HTTP/IMAP 密码</li>
<li>TightVNC,RealVNC,WinVNC3/4密码</li>
<li>Outlook设置</li>
<li>SAM,LSASS缓存</li>
<li>Windows Live，Net Passport密码</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/2015071406444478663a94356c490d576d70a977f72629345ba" alt="enter image description here" /></p>

<pre><code>该模块收集的信息
</code></pre>

<p>其他已知变体：992E，AF68，D49F</p>

<h2>482F-收集系统信息</h2>

<ul>
<li>枚举驱动器</li>
<li>获取正在运行进程的列表</li>
<li>大范围收集进程信息包括进程运行了多长时间</li>
<li>内存信息</li>
<li>SID信息</li>
</ul>

<p>其他已知变体：F3F4</p>

<h2>559B-调查Active Directory</h2>

<ul>
<li>用ADSI连接Active Directory GC</li>
<li>枚举AD中所有对象</li>
<li>用人类可读的格式来显示所有条目</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/20150714054512319158e69ca2e4495010b8379889ef63e5c3c" alt="sss" /></p>

<p>ActiveDirectory详细路径</p>

<h2>580C-收集系统和网络信息</h2>

<ul>
<li>检索域控制器名称</li>
<li>枚举域中所有的用户和小组</li>
<li>收集计划任务日志</li>
<li>收集硬盘信息，可移动硬盘的历史记录</li>
<li>检索防火墙策略</li>
<li>枚举所有命名系统对象</li>
<li>枚举所有系统服务</li>
</ul>

<h2>5B78-收集系统信息及实用工具。</h2>

<p>它有两个导出函数其中一个的名字是"Getreport"</p>

<ul>
<li>枚举正在运行的进程，提取tokens和SID，收集时间信息</li>
<li>explicit credentials 登陆用户</li>
<li>以当前进程来模拟用户权限</li>
<li>用硬编码模版创建新32位和64位shellcode</li>
</ul>

<p>存在32位和64位版本。</p>

<p>其他已知变体：E8C7，EE6E</p>

<h2>5C66-经过加密的文件I/O，实用工具</h2>

<ul>
<li>文件I/O操作：打开/查询/读取/编写</li>
<li>管理经过压缩和加密的临时文件</li>
</ul>

<h2>622B-生成非常规格式的XML</h2>

<ul>
<li>计算机名称</li>
<li>Windows目录</li>
<li>枚举所有逻辑驱动器</li>
<li>列举所有文件</li>
<li>OS序列号</li>
<li>域名</li>
<li>网络适配器配置：IP地址，MAC，MTU，适配器列表</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150715/2015071517244787563e6af277e004402a6546e1fcbf7511960" alt="enter image description here" /></p>

<p>生成系统报告的XML标签</p>

<h2>6302-实用工具。</h2>

<p>内部名称“d3dx9_27.dll”。执行基于时间的事件。</p>

<p>其他已知变体：FA84</p>

<h2>669D-实用工具。</h2>

<p>列举文件名称和目录，检查它们是否存在。</p>

<p>其他已知变体：880B</p>

<h2>6914-Sniffer网络攻击。</h2>

<p>使用合法WinPcap驱动器“npf.sys”。检测NBNS（NetBIOS协议）感兴趣的请求并发送响应</p>

<ul>
<li>响应WPAD请求（NBNS数据包中的“FHFAEBE”）</li>
<li>向HTTP GET请求发送响应</li>
</ul>

<p>网络过滤器基于BPF库。HTTP和WPAD的payload由外部提供.</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071415053763998e8deca36240c1f66feeb8f0554de35e2" alt="enter image description here" /></p>

<p>虚假HTTP响应及相关状态信息</p>

<h2>6FAC-文件API</h2>

<ul>
<li>获取文件大小，属性</li>
<li>安全删除文件</li>
<li>打开/关闭/读写/文件内容</li>
</ul>

<p>其他已知变体：A7EE</p>

<h2>7BDA-收集系统信息</h2>

<ul>
<li>使用wscapi.dll api的防火墙状态 当前杀毒软件状态</li>
<li>检查sqlservr.exe是否运行中</li>
<li>计算机名称</li>
<li>工作小组信息</li>
<li>域控制器名称</li>
<li>网络适配器配置</li>
<li>时间及时区信息</li>
<li>CPU频率</li>
</ul>

<p>其他已知变体：EF2E</p>

<h2>7C23-从文件中提取元数据并收集系统信息</h2>

<ul>
<li>计算机名称</li>
<li>系统卷标序列号</li>
<li>完整的文件API，如6FAC中提到的</li>
</ul>

<p>搜索文件、档案及implements routines中的信息并提取：</p>

<ul>
<li>电子邮件信息：eml,msg</li>
<li>图片文件：jpg,jpe,jpeg,tif,tiff,bmp,png</li>
<li>多媒体文件：wmv,avi,mpeg,mpg,m4a,mkv,wav,aac,ac3,dv,flac,flv,h264,mov,3gp,3g2,mj2,mp3,mpegts,ogg,asf.上述文件都经libffmpeg重加密。</li>
<li>PDF文件内容</li>
<li>微软Office:doc,docx,xlsx,pptx.专用路径为：“OfficeRipDoc”,“OfficeRipDocx”,“OfficeRipXlsx”,“OfficeRipPptx”。提取PPT幻灯片，将其转换成HTML摘要</li>
<li>档案：gz,gzip,gzX3,zip,rar</li>
</ul>

<p>创建扩展名为“.fg4”的临时文件。</p>

<p>其他已知变体：EB18，C091</p>

<p><img src="http://static.wooyun.org//drops/20150714/20150714055706604372e8d0fe5a55aa56070b605fe1d555b3f" alt="enter image description here" /></p>

<p>感兴趣的文件扩展名及其对应的状态信息列表</p>

<p><strong>8172——嗅探攻击。</strong>执行 NBNS（NetBIOS协议）名称解析来欺骗：</p>

<ul>
<li>WPAD请求</li>
<li>以“SHR”开头的名字</li>
<li>以“3142”（只限日志）开头的名字</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/201507140545202185356757468161fcfa21b5b3b692c076168" alt="enter image description here" /></p>

<p>附加功能：该组件能够在硬编码模板中新建shellcode blob。</p>

<p><strong>81B7——驱动程序管理</strong></p>

<ul>
<li>把驱动程序写入磁盘</li>
<li>启动/关闭驱动程序</li>
<li>从磁盘中安全删除驱动程序文件</li>
</ul>

<p>其他已知变体： C1B9</p>

<p><strong>8446——Oracle DB和ADOdb客户端</strong></p>

<ul>
<li>使用 “oci.dll” API访问Oracle数据库</li>
<li>从数据库中获取所有可用信息</li>
<li>还会连接到 ADOdb pviders</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405570934824ce0244b496ffc912d8124a283fea2abd" alt="enter image description here" /></p>

<p><strong>8912——处理加密文件，收集系统信息</strong></p>

<ul>
<li>shared file mapping communication</li>
<li>将加密数据写入文件</li>
<li>枚举窗口</li>
<li>枚举网络共享和本地磁盘</li>
<li>检索USB设备历史记录</li>
<li>收集网络路由表</li>
</ul>

<p>已知互斥体和映射名：</p>

<ul>
<li>Global{DD0FF599-FA1B-4DED-AC70-C0451F4B98F0} Global{B12F87CA-1EBA- 4365-B90C-E2A1D8911CA9}, </li>
<li>Global{B03A79AD-BA3A-4BF1-9A59-A9A1C57A3034} Global{6D2104E6-7310- 4A65-9EDD-F06E91747790}, </li>
<li>Global{DD0FF599-FA1B-4DED-AC70-C0451F4B98F0} Global{B12F87CA-1EBA- 4365-B90C-E2A1D8911CA9}</li>
</ul>

<p>其他已知变体： D19F, D2EE</p>

<p><strong>9224——运行控制台应用程序。</strong>使用桌面"default"创建进程,附加到命令行窗口,把i/o重定向到命名管道.</p>

<p><strong>92DB</strong>——修改cmd.exe shell。</p>

<p><img src="http://static.wooyun.org//drops/20150714/201507140644526551421f734e48ae4fe9c427ed03edc1064f5" alt="enter image description here" /></p>

<p><strong>9F0D</strong>（64位）， <strong>D1A3</strong>（32位）——NPF.SYS这个驱动是伴随着VFS插件一起分发的,它有合法的签名.。它被用来执行嗅探攻击。</p>

<p><strong>A4B0——网络调查</strong></p>

<ul>
<li>用DHCP Server Management API (DHCPSAPI.DLL)来枚举所有DHCP服务器的客户端</li>
<li>查询所有已知的DHCP子网</li>
<li>搜索开放了udp1434 udp137端口的电脑</li>
<li>枚举所有网络服务器</li>
<li>枚举网络共享</li>
<li>尝试连接到远程注册表以枚举HKEY_USERS下的所有用户，将这些用户名转换成SID。</li>
</ul>

<p><strong>B6C1 - WNet API。</strong>为WnetAddConnection2和WNetOpenEnum函数提供wrappers</p>

<p>其他已知变体：BC4A</p>

<p><strong>C25B——嗅探攻击</strong>。运行一个<strong>伪造SMB服务器</strong>来诱骗其他电脑用NTLM进行验证。</p>

<ul>
<li>执行SMB v1命令</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/20150714054528602284f82817e9c4de85c13dfc10309eec2e4" alt="enter image description here" /></p>

<ul>
<li>开放虚假ipc$ A:share</li>
<li>接受用户身份验证请求</li>
<li>处理HTTP “GET /”请求</li>
</ul>

<p><img src="http://static.wooyun.org//drops/20150714/2015071405453120459fe254c6e3fc6f0e2c50c910852c616ff" alt="enter image description here" /></p>

<p><strong>ED92——文件系统调查</strong></p>

<ul>
<li>枚举所有本地驱动器，并连接到网络共享</li>
<li>列出文件</li>
</ul>

<p><strong>EF97——文件操作动作</strong></p>

<ul>
<li>枚举文件</li>
<li>创建和删除目录</li>
<li>复制/移动/删除文件和目录</li>
<li>从文件中获取版本信息</li>
<li>计算文件的哈希函数</li>
</ul>

<p>其他已知变体：F71E</p>

<h1>0x03 结束语</h1>

<hr />

<p>一般来说,刻画黑客的犯罪过程是一件很困难的事情,duqu2.0尤甚.</p>

<p>duqu除了使用大量的代理来隐蔽自身的犯罪行为外,还额外使用了一些小伎俩:比如它会在代码中植入几个虚假的标记,ugly.gorilla&amp;romanian.antihacker, LZJB算法,前者会让我们错误的认为此次攻击事件是由中国人干的或者这是一次来自罗马尼亚的黑客攻击,后者会让我们错误的认为这个木马来源于miniduke家族.</p>

<p>duqu的攻击具有多地域特征,受害者既有西方国家,也有中东和亚洲国家.关于duqu背后的黑客我们发现了很有趣的一点,那就是他们不仅会盗窃,还会偷方便盗窃用的工具.比如为了投放木马他们在2011年攻击了匈牙利的一家管理数字证书的企业.</p>

<p>duqu2.0的攻击目标和duqu1.0的攻击目标有很多重合的地方.伊朗核设施和一些工控企业始终是他们觊觎的目标.</p>

<p>对一家网络安全公司来说,承认系统被入侵是一件不可想象的事情,但是对卡巴斯基来说不是这样的,因为我们秉承公开透明的原则,基于对用户安全的考量,我们选择公布了此次事件的调查结果.&#45;--|||||||||&#45;--|||||||||为了用户的信任 我们会战斗到底。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          